adversarial code review